/**
 * @(#)Person.java
 * 1.0, 2013-01-24
 */
package de.hdm.gruppenkalender.team04.data;

import java.rmi.Remote;
import java.rmi.RemoteException;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.621B0B70-29E1-00D6-562F-FC30C6BB5587]
// </editor-fold>
/**
 * Schnittstellenspezifikation einer Person.
 *
 * @author Mathias Bendel (mb167)
 * @author Björn Fichnter (bf023)
 * @author Stefan Hettich (sh176)
 * @author René Kugel (rk044)
 * @author Mark Leonberger (ml072)
 * @author Marta Przybylski (mp070)
 *
 * @version 1.0, 2013-01-24
 *
 * @see PersonImpl
 */
public interface Person extends Remote {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.BF112FAA-E1DF-3901-7A4C-6BA09F56B89F]
    // </editor-fold> 
    /**
     * Gibt die ID der {@link Person} zurück.
     *
     * @return  int             personId
     * @throws  RemoteException
     */
    public int getPersonId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.54928D40-2DC8-78EA-4640-4F37751CFF38]
    // </editor-fold> 
    /**
     * Setzt eine neue ID der {@link Person}.
     *
     * @param   personId
     * @throws  RemoteException
     */
    public void setPersonId(int personId) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.F505AB92-6004-65F4-16C2-A077935D1489]
    // </editor-fold> 
    /**
     * Gibt den Nachnamen der {@link Person} zurück.
     *
     * @return  String          nachname
     * @throws  RemoteException
     */
    public String getNachname() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.3C2430E6-C385-A9E9-DA9D-6AC48A2D5CAA]
    // </editor-fold> 
    /**
     * Setzt einen neuen Nachnamen.
     *
     * @param   nachname
     * @throws  RemoteException
     */
    public void setNachname(String nachname) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.98F1DAE6-24F6-559C-3E06-FDED2EC69D9D]
    // </editor-fold> 
    /**
     * Gibt den Vornamen der {@link Person} zurück.
     *
     * @return  String          vorname
     * @throws  RemoteException
     */
    public String getVorname() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.43D15884-3751-6524-42EA-0552E05A4690]
    // </editor-fold> 
    /**
     * Setzt einen neuen Vornamen.
     *
     * @param   vorname
     * @throws  RemoteException
     */
    public void setVorname(String vorname) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.EAC57205-EF4E-BFAC-0B27-B2BE7AE57D52]
    // </editor-fold> 
    /**
     * Gibt den Raum der {@link Person} zurück.
     *
     * @return  String          raum
     * @throws  RemoteException
     */
    public String getRaum() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.F1A9E373-C30C-30FB-C886-1767D8B2D8D0]
    // </editor-fold> 
    /**
     * Setzt einen neuen Raum.
     *
     * @param   raum
     * @throws  RemoteException
     */
    public void setRaum(String raum) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.BC6C5560-5308-865A-3C5F-5ED2EE0770AB]
    // </editor-fold> 
    /**
     * Gibt die Telefon-Nummer der {@link Person} zurück.
     *
     * @return  String          telefon
     * @throws  RemoteException
     */
    public String getTelefon() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.BDD05D7F-A48F-B52C-3C4D-C677DB26F1D9]
    // </editor-fold> 
    /**
     * Setzt eine neue Telefon-Nummer.
     *
     * @param   telefon
     * @throws  RemoteException
     */
    public void setTelefon(String telefon) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.630F5536-E00E-5EE9-8E14-82BB49F21910]
    // </editor-fold> 
    /**
     * Gibt die E-Mail-Adresse der {@link Person} zurück.
     *
     * @return  String          email
     * @throws  RemoteException
     */
    public String getEmail() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A7C00B82-AB4D-6160-00D4-AA47EAF31890]
    // </editor-fold> 
    /**
     * Setzt eine neue E-Mail-Adresse.
     *
     * @param   email
     * @throws  RemoteException
     */
    public void setEmail(String email) throws RemoteException;

    /**
     * Gibt einen eindeutigen Identifikations-String zu Anzeige in der GUI zurück.
     *
     * @return  String          IdentifikationsName
     * @throws  RemoteException
     */
    public String ermittleIdentifikationsName() throws RemoteException;
}
